package com.yxw.yx_hotel.service;

import com.yxw.yx_hotel.dto.*;
import com.yxw.yx_hotel.excel.ExportStayWaitExcel;
import com.yxw.yx_hotel.vo.RoomFeeVo;
import com.yxw.yx_hotel.vo.StayRecordVo;
import com.yxw.yx_hotel.vo.StayWaitVo;
import com.yxw.yxnet_cd_center.common.dto.PageVO;
import com.yxw.yxnet_cd_center.common.utils.BaseResult;

import java.util.List;

/**
 *  待住管理
 * @author liuxin
 * @date 2024.01.18
 */
public interface StayWaitService {


    /**
     * 新增待住名单
     * @param dto
     */
    void addStayWait(AddStayWaitDto dto);

    /**
     * 查询待住列表
     * @param dto
     * @return
     */
    PageVO<StayWaitVo> pageStayWaitList(QueryStayWaitDto dto);

    /**
     * 查询待住详情
     * @param stayWaitId
     * @return
     */
    StayWaitVo getStayWaitById(Long stayWaitId);

    /**
     * 更新待住信息
     * @param dto
     */
    void updateStayWait(AddStayWaitDto dto);

    /**
     * 查询待住名单列表（不分页）
     * @param dto
     * @return
     */
    List<StayWaitVo> getStayWaitList(QueryStayWaitDto dto);

    /**
     * 办理入住
     * @param stayWaitIds
     */
    void addStayIn(AddStayInDTO addStayInDTO);

    /**
     * 取消待住
     * @param stayWaitIds
     */
    void cancelStayWait(List<Long> stayWaitIds);

    /**
     * 导入待住数据
     * @param dataList
     */
    BaseResult importData(List<ExportStayWaitExcel> dataList);

    /**
     * 查询入住历史(记录)列表
     * @param dto
     * @return
     */
    PageVO<StayRecordVo> pageStayRecordList(QueryStayRecordDto dto);
}
